'''

鸭子类型是一种编程风格，它不关注对象的具体类型，而是关注对象是否具有特定的方法和属性。
如果一个对象走路像鸭子、游泳像鸭子、叫声像鸭子，那么它就可以被当作鸭子。

'''

class Dog:
    def speak(self):
        return "Woof!"

class Cat:
    def speak(self):
        return "Meow!"

def animal_speak(animal):
    return animal.speak()

# 创建不同类型的对象
dog = Dog()
cat = Cat()

# 调用 animal_speak 函数，传入不同类型的对象
print(animal_speak(dog))  # 输出: Woof!
print(animal_speak(cat))  # 输出: Meow!
